#define __LIBRARY__
#include <unistd.h>
#include <stdarg.h>

int open(const char *filename, int flag, ...)
{
    register int res;
    va_list arg;

    va_start(arg, flag);
    __asm__("int $0x80"
        :"=a" (res)
        :"0" (__NR_open), "b" (filename), "c" (flag),
         "d" (va_arg(arg, int)));
    if (res >= 0)
        return res;
    errno = -res;
    return -1;
}
